package configure;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

import configure.dao.EntityDAO;
import configure.dao.impl.EntityDAOImpl;
import configure.service.EntityService;
import configure.service.impl.EntityServiceImpl;

// @Configuration注解表示注解的类声明有一个或多个包含@Bean注解的方法，并可能被Spring容器处理以在运行时为这些Bean生成Bean定义和服务请求
@Configuration
// @ComponentScan表示配置组件扫描指令，它与@Configuration注解类一起使用，并提供与<context:component-scan>元素作用相同的支持
@ComponentScan(basePackages = "handler")
public class SpringConfiguration {
    // @Bean注解表示注解的方法生成一个由Spring容器管理的Bean
    @Bean
    public EntityDAO entityDAO() {
        return new EntityDAOImpl();
    }

    @Bean(name = "service")
    public EntityService serviceBean() {
        EntityService service = new EntityServiceImpl();
        return service;
    }
}
